package com.itheima.d1_inner.demo4;

//目标：掌握匿名内部类的使用方式
public class Demo {
    public static void main(String[] args) {
        /**
         * 匿名内部类定义格式：
         *      new 类名/接口名() {
         *          重写抽象方法;
         *      }
         */

        //需求：定义Animal的子类猫和狗，创建它们的对象，并且调用各自的eat方法
        //1.先使用传统方式，先去定义一个Java文件，写Dog狗类，然后重写父类的抽象方法，创建狗对象，调用方法
        Dog dog = new Dog();
        dog.eat();

        //2.使用匿名内部类方式：将上面进行优化，把定义类和创建对象两步合成一步
        Animal cat = new Animal() {

            @Override
            public void eat() {
                System.out.println("猫吃鱼");
            }

            @Override
            public void water(){
                System.out.println("猫喝水");
            }
        };

        cat.eat();
        cat.water();
    }
}

